package org.capgemini.tienda.service;

import java.util.List;

import org.apache.log4j.Logger;
import org.capgemini.tienda.dao.DAOFactory;
import org.capgemini.tienda.vo.UsuarioVO;

public class UsuariosDelegateImpl implements IUsuariosDelegate{

	private static UsuariosDelegateImpl _instance = null;
	protected static Logger log= Logger.getLogger(UsuariosDelegateImpl.class);
	
	private UsuariosDelegateImpl(){}

	public static UsuariosDelegateImpl getInstance(){
		if(_instance==null){
    		_instance = new UsuariosDelegateImpl();
    	}
        return _instance;
	}
	
	@Override
	public boolean comprobarUsuario(UsuarioVO usuario) {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().comprobarUsuario(usuario);
	}

	@Override
	public String getRole(UsuarioVO usuario) {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().getRole(usuario);
	}

	@Override
	public void addUsuario(UsuarioVO usuario) {
		DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().addUsuario(usuario);
	}

	@Override
	public boolean existeUsername(String username) {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().existeUsername(username);
	
	}

	@Override
	public UsuarioVO getDatos(String username) {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().getDatos(username);
	
	}

	@Override
	public List<UsuarioVO> getListaUsuarios() {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().getListaUsuarios();
		
	}

	@Override
	public void changeRole(String userName, String role) {
		DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().changeRole(userName, role);
	}

	@Override
	public UsuarioVO detalleUsuario(String id) {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().detalleUsuario(id);
	}

	@Override
	public void updateUsuario(UsuarioVO usuario) {
		DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().updateUsuario(usuario);
	}

	@Override
	public void borrarUsuario(String id) {
		DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().borrarUsuario(id);
	}

	@Override
	public String getPassword(UsuarioVO usuario) {
		return DAOFactory.getDAOFactory(DAOFactory.MYSQL).getUsuariosDAO().getPassword(usuario);
	}

}
